# 李广龙
# jar包 docker运行方式
#如果 容器存在但没运行 直接运行脚本 会报错 运行前先清理
#源jar路径  即jenkins构建后存放的路径 绝对路径
SOURCE_PATH=/gateway
#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=gateway
SERVER_PORT=10010
TAG=1.0
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$SERVER_NAME:$TAG" | awk '{print $3}')
#判断容器是否存在
echo "************ 检查容器是否存在 ***************"
if [ -n "$CID" ]; then
  echo "存在容器$SERVER_NAME, CID-$CID"
  docker stop $SERVER_NAME
  docker rm $SERVER_NAME
  echo "删除容器和镜像成功:$SERVER_NAME, CID-$CID"
fi
# 构建docker镜像 并删除以前的镜像
if [ -n "$IID" ]; then
  echo "存在$SERVER_NAME:$TAG镜像，IID=$IID"
  docker rmi $SERVER_NAME:$TAG
else
  echo "不存在$SERVER_NAME:$TAG镜像，开始构建镜像"
  cd $SOURCE_PATH || exit
  docker build -t $SERVER_NAME:$TAG .
fi
echo "************** 检查端口占用 ****************"
port=$(netstat -nlp |grep :"${SERVER_PORT}" | awk '{print $7}')
port=${port%%/*}
if [ ${#port} -gt 1  ]; then
        echo "端口占用-进程id: $port"
        kill -9 $port
        echo "开始 kill ${SOURCE_PORT} 端口占用进程!"
        if [ "$?" -eq 0 ]; then
                echo "kill $port 成功!"
        else
                echo "kill $port 失败"
        fi
fi
# 运行docker容器
docker run --name $SERVER_NAME -d -p $SERVER_PORT:$SERVER_PORT $SERVER_NAME:$TAG
echo "容器创建完成>>>>>>>>>>>>>>>>>>>${SERVER_NAME}"
exit 0